//贪心 前缀和 训练士兵
//改进点：直接计算出sum刚好大于S的位置loc
//组团训练的次数就等于loc位置需要的次数
//后续的士兵就都是单独训练
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

const ll N=1e5+9;
pair<ll,ll> pairs[N]; 
ll prefix[N];
int main()
{
	ll n=0,S=0;
	cin>>n>>S;
	
	for(ll i=1;i<=n;i++)
	{
		cin>>pairs[i].second>>pairs[i].first;
	}
	
	sort(pairs+1,pairs+1+n);
	
	ll ans=0;
	ll i=0;
	ll sum = 0;
	for( i=n;i>=1;i--)
	{
		sum+=pairs[i].second;
		if(sum>=S)
		{
			break;
		}
	}
	ll loc = i;
	
	ans=pairs[loc].first*S;
	
	for(ll j = loc+1; j<=n;j++)
	{
		ans+=(pairs[j].first - pairs[loc].first)*pairs[j].second;
	}
	cout<<ans;
	return 0;
	
}
